The field of the present invention pertains to 3D computer graphics. More particularly, the present invention relates to a method and system for the efficient streaming of 3D animation for computer systems on a network.
Computer graphics are being used today to perform a wide variety of tasks. Many different areas of business, industry, government, education, entertainment, and most recently, the home, are tapping into the enormous and rapidly growing list of applications developed for today""s increasingly powerful computer devices.
Graphics have also become a key technology for communicating ideas, data, and trends in most areas of commerce, science, and education. Modern graphics workstations often implement real time user interaction with three dimensional (3D) models and pseudo-realistic images. These workstations typically contain dedicated, special purpose graphics hardware. The progress of semiconductor fabrication technology has made it possible to do real time 3D animation, with color shaded images of complex objects, described by thousands of polygons, on powerful dedicated rendering subsystems. The most recent and most powerful workstations are capable of rendering completely life-like, realistically lighted, 3D objects and structures.
One of the most powerful methods of communicating ideas and information is through the use of video, particularly, interactive video. The most commonly used means of disseminating video, the television, has become quite ubiquitous. However, most applications involving the widespread use of interactive video have centered upon the use of computer systems (e.g., desktop computer systems, digital set-top boxes, and the like) coupled via communications networks.
The computer systems provide the platforms for receiving and rendering the video information. In addition, the computer systems provide the interactive aspects and functionality which distinguish interactive video applications from more traditional video applications (e.g., television). The video information is provided to the computer system platforms via a communications network.
The Internet has emerged as the most important and most ubiquitous such communication network, although the communication network can be any of several different forms (e.g., company-wide ethernet networks, intranets, etc.). Video applications envision the dissemination of video information to computer equipped users via the Internet.
Unfortunately, most users are coupled to the Internet via a narrow band connection, typically a telephone modem. The narrow band connection limits the quality of the video information which can be transferred to the user. For example, 30 seconds of television quality video can require a user to endure a video data download of an hour or more across a telephone modem (e.g., 56K modem).
In an effort to ameliorate this problem, many Internet video applications employ streaming animation to provide their xe2x80x9cvideo-likexe2x80x9d functionality. Streaming animation in such applications is used to bring video characteristics (motion, etc.) to characters or scenes. Streaming animation typically involves the downloading of video data via a network connection and the subsequent rendering of the video data on the user""s computer system as the remaining portion of the video data completes its download.
Prior Art FIG. 1 shows a diagram of a prior art GIF animation streaming animation system 100. As depicted in FIG. 1, system 100 includes a server 102 coupled to a client 104 via a network 101. Server 102 is typically a large computer system residing at the video applications site premises (e.g., an on-line video company). Client 104 is typically a desktop computer system at, for example, the user""s home. Network 101 is the Internet.
Prior Art GIF animation uses a streaming animation technique to bring life to, for example, characters or scenes rendered by the client 104. The GIF animation is performed using a series of image files 110-115 (e.g., image files stored using the GIF format). The files 110-115 are individually streamed via network 101 to the client 104. The files 110-115 are received and rendered as image files 120-125 by the client 104. By rendering and displaying the successive image files, client 104 animates to characters or scenes viewed by the user.
GIF animation as depicted in system 100 is a 2D (two-dimensional) animation in that the resulting animated scene is 2D as opposed to 3D (three-dimensional). Examples of 2D animation techniques include Macromedia Flash(trademark) and traditional MPEG animation.
There exists, however, a substantial limitation to the animation techniques embodied by system 100. Due to the narrow band nature of the modem transmission over the Internet network 101, it is very hard to maintain realism and normal motion type animation. Maintaining animation of the quality to which users are accustomed (e.g., television type quality) is extremely difficult when streaming video data over the narrow pipes of the Internet. The quality of the video information greatly suffers. In addition to the loss of video quality, the narrow band nature of the modem transmission makes any real interactivity with an animation extremely difficult.
Thus, what is required is a solution capable of providing high-quality animation over narrow bandwidth connections. The required solution should be capable of providing television quality animation over the typically narrow data pipes of the Internet. What is required is a system that maintains interactivity without impacting the animation quality. In addition, was further required is a system capable of providing 3D animation and interactivity. The present invention provides a novel solution to the above requirements.
The present invention is a solution capable of providing high-quality animation over narrow bandwidth network connections. The system of the present invention is capable of providing high quality animation over the typically narrow data pipes of the Internet. The system of the present invention maintains interactivity without impacting the animation quality. In addition, the present invention provides a system capable of providing 3D animation and interactivity.
In one embodiment, the present invention is implemented as client/server computer system for providing interactive 3D animation via a network. A 3D model is accessed on the client. The 3D model is a representation of the Figure or scene to be animated (e.g., a 3D model of an athlete, an animal, a vehicle, etc.). The client then receives a series of transform updates for the 3D model via a network. In this embodiment, the network is the Internet and the client (e.g., a desktop computer system) is coupled to the Internet via a narrow bandwidth connection (e.g., telephone modem).
The series of transform updates describe for the client the manner in which to update the 3D model, and thereby implement the animation. The 3D model is instantiated and rendered by dedicated rendering hardware included in the client. Each of the series of transform updates are applied by the client to the 3D model to render a corresponding series of 3D images. The series of rendered 3D images are then displayed to the user to provide a 3D animation. The transform updates are streamed from the server to the client via the network. The user views 3D animation on a display coupled to the client. The user sees the 3D model xe2x80x9ccome to lifexe2x80x9d in the manner intended.
Interactivity is implemented by receiving user commands from the client via the network. In response to the user commands, the server appropriately alters the series of transform updates streamed to the user, thereby providing interactivity to the 3D animation. Thus, for example, the user is able to interact with the 3D animation as the 3D animation xe2x80x9crespondsxe2x80x9d to user inputs (e.g., mouse clicks, etc.).
Streaming the transform updates across the Internet is more bandwidth efficient than streaming images using a series of image files. For an additional degree of efficiency, the transform updates themselves can be compressed prior transmission from the server to the client via the network. The compressed transform updates are then decompressed by the client and used to render the corresponding series of 3D images for the animation. In so doing, the client/server computer system of the present invention is capable of providing high-quality, interactive 3D animation over narrow data pipes of the Internet.